package com.xgh.offer;

/**
 * @ClassName Offerr53_2
 * @Description
 * @Author xinggh
 * @Date 2020/7/3 9:24
 * @Version 1.0
 **/
public class Offerr58 {
    /**
     * 剑指 Offer 58 - I. 翻转单词顺序
     * 输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，标点符号和普通字母一样处理。例如输入字符串"I am a student. "，则输出"student. a am I"。
     * <p>
     * <p>
     * <p>
     * 示例 1：
     * <p>
     * 输入: "the sky is blue"
     * 输出: "blue is sky the"
     * 示例 2：
     * <p>
     * 输入: "  hello world!  "
     * 输出: "world! hello"
     * 解释: 输入字符串可以在前面或者后面包含多余的空格，但是反转后的字符不能包括。
     */
    public static String reverseWords(String s) {


        String[] split = s.split(" ");
        int end = split.length - 1;
        for (int i = 0; i < split.length / 2; i++) {
            String tmp = split[i];
            split[i] = split[end - i];
            split[end - i] = tmp;
        }

        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < split.length; i++) {
            if ("".equals(split[i])) {
                continue;
            }
            stringBuilder.append(split[i]);
            if (i != end) {
                stringBuilder.append(" ");
            }
        }
        return stringBuilder.toString().trim();

    }

    public static void main(String[] args) {
        String s = "  hello world!  ";
        reverseWords(s);
    }

}
